package com.ziqikeji.socket.service;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;

/**
 * 服务器端
 * @author bcs
 */
public class MyServer {
    //使用ArrayList存放连上服务端的所有客户端
    public static ArrayList<Socket> sockets = new ArrayList<Socket>();
    public static void main(String[] args) {
        try {
            //创建一个服务器套接字,绑定到54321端口
            ServerSocket server = new ServerSocket(54321);
            System.out.println("服务器已启动，正在等待连接");
            while (true) {
                //调用accept方法，侦听来自客户端的请求
                Socket socket = server.accept();
                //将客户端发送过来的通信套接字添加到sockets动态数组中
                sockets.add(socket);
                //输出在线的客户端个数
                System.out.println("有" + sockets.size() + "个客户连接上");
                //启动发送线程，给客户端发送一句“欢迎光临！”
                new GetOutputStream(socket).start();
                //启动接收线程，读取从客户端发来的消息
                new GetInputStream(socket).start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
